package cn.com.open.itembank.utils;

import java.io.File;

public class PathUtil {


    public static String getBathPath(String tempFileBasePath) {
        String path = tempFileBasePath + "/itemBank/tempFileBasePath/";
        File file = new File(path);

        // 判断文件夹不存在则新建
        judeDirExists(file);

        // 超过24小时的临时文件删除处理
        deleteOldFiles(file);

        return path;
    }



    /**
     * 判断文件夹是否存在
     *
     * @param file
     */
    public static void judeDirExists(File file) {
        if (file.exists()) {
            if (file.isDirectory()) {
                // System.out.println("dir exists");
            } else {
                // System.out.println("the same name file exists, can not create dir");
            }
        } else {
            // System.out.println("dir not exists, create it ...");
            file.mkdirs();
        }
    }

    /**
     * 删除给定文件夹下的最后编辑时间和当前时间差大于1天的历史文件.
     *
     * @param direcotry 给定文件夹
     */
    public static void deleteOldFiles(File direcotry) {
        //如果文件是文件夹并且存在
        if (direcotry.exists() && direcotry.isDirectory()) {
            //获取所有文件列表
            File[] fileList = direcotry.listFiles();
            //获取当前时间
            long now = System.currentTimeMillis();
            //遍历文件
            for (File file : fileList) {
                //如果是文件类型
                if (file.isFile()) {
                    //获取最后编辑时间
                    long lastModified = file.lastModified();
                    //如果最后编辑时间和当前时间差大于一天，则删除文件
                    if (now - lastModified > (1000 * 3600 * 24)) {
                        file.delete();
                    }
                }
            }
        }
    }
    //endregion
}
